﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace SCIM.Negocio
{
    /// <summary>
    /// Entidad Usuario
    /// </summary>
    public class Usuario
    {
        /// <summary>
        /// Codigo del vendedor
        /// </summary>
        public string strCodigo { get; set; }

        /// <summary>
        /// Clave
        /// </summary>
        public string strClave { get; set; }

        /// <summary>
        /// Datatable de usuario
        /// </summary>
        SCIM.Datos.Usuario.Usuario.USU_USUARIODataTable dtUsuario = new SCIM.Datos.Usuario.Usuario.USU_USUARIODataTable();

        /// <summary>
        /// Tableadapter de usuario
        /// </summary>
        SCIM.Datos.Usuario.UsuarioTableAdapters.USU_USUARIOTableAdapter taUsuario = new SCIM.Datos.Usuario.UsuarioTableAdapters.USU_USUARIOTableAdapter();

        /// <summary>
        /// Valida el usuario con la BBDD
        /// </summary>
        /// <param name="strCodigo">Codigo o usuario ingresado</param>
        /// <param name="strClave">Clave ingresada</param>
        /// <returns>Retorna un valor indicando si existe o no el usuario, tambien segun su perfil</returns>
        public int ValidarUsuario(string strCodigo, string strClave)
        {
            ///Se obtiene la informacion de los usuarios
            dtUsuario = taUsuario.ObtieneUsuario();

            ///Se construye una consulta Linq
            var query = from r in dtUsuario.AsEnumerable()
                        where r.Field<String>("VND_CODIGO").Equals(strCodigo) &&
                        r.Field<String>("USU_CLAVE").Equals(strClave)
                        select r;

            if (query.Count() == 0)
            {
                // No encuentra resultado en la consulta
                return 0;
            }
            else
            {
                if (query.ToList().Exists(a => a.VND_CODIGO.Equals("1")))
                {
                    // indica que es operador
                    return 1;
                }
                else
                {
                    // indica que es vendedor
                    return 2;
                }
            }
        }
    }
}
